//
//  multimap.cpp
//  stl1
//
//  Created by XiongGuang on 16/9/11.
//  Copyright © 2016年 XiongGuang. All rights reserved.
//

#include <stdio.h>
#include <iostream>
#include <string>
#include <map>
#include <algorithm>


typedef int KeyType;
typedef std::pair<const KeyType,std::string> Pair;
typedef std::multimap<KeyType,std::string> MapCode;

int main()
{
    using namespace std;
    MapCode codes;
    
    codes.insert(Pair(415,"San Francisco"));
    codes.insert(Pair(510,"Okaland"));
    codes.insert(Pair(718,"Brookly"));
    codes.insert(Pair(718,"Staten Island"));
    codes.insert(Pair(415,"San Rafael"));
    codes.insert(Pair(510,"Berkeley"));
    
    cout<<"Numebr of cities with area code 415: "
    <<codes.count(415)<<endl;
    
    cout<<"Number of cities with area code 718: "
    <<codes.count(718)<<endl;
    
    cout<<"Number of cities with area code 510: "
    <<codes.count(510)<<endl;
    
    cout<<"Area  Code City\n";
    
    MapCode::iterator it;
    
    for (it=codes.begin(); it!=codes.end(); ++it) {
        cout<<"  "<<(*it).first<<"    "<<(*it).second<<endl;
    }
    pair<MapCode::iterator,MapCode::iterator>range=
    codes.equal_range(718);
    cout<<"Citis with area code  718: \n";
    for (it=range.first; it!=range.second; ++it) {
        cout<<(*it).second<<endl;
    }
    
    return 0;
    
    
}